package net.danielpaz.pucc.poo.trabalho.view;

import java.awt.EventQueue;

import javax.swing.JFrame;

import java.awt.GridLayout;
import java.awt.FlowLayout;

import net.danielpaz.pucc.poo.trabalho.control.ControllerFunc;
import net.danielpaz.pucc.poo.trabalho.model.Funcionario;
import net.danielpaz.pucc.poo.trabalho.model.Motorista;
import net.miginfocom.swing.MigLayout;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GuiConsultarFuncionario {

	public JFrame frmConsultarFuncionario;
	private JTextField txCod;
	private JTextField txNome;
	private JTextField txCNH;
	private JTextField txCategoria;
	private JTextField txCPF;
	private JTextField txTelefone;
	private JButton btnEditar;
	private JButton btnExcluir;
	private JButton btnSalvar;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GuiConsultarFuncionario window = new GuiConsultarFuncionario();
					window.frmConsultarFuncionario.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public GuiConsultarFuncionario() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmConsultarFuncionario = new JFrame();
		frmConsultarFuncionario.getContentPane().setEnabled(false);
		//frmAdicionarRota.setIconImage(Toolkit.getDefaultToolkit().getImage(GuiAdicionarRota.class.getResource("/docs/bus.png")));
		frmConsultarFuncionario.setResizable(false);
		frmConsultarFuncionario.setTitle("Consultar Funcionario");
		frmConsultarFuncionario.setBounds(100, 100, 500, 166);
		frmConsultarFuncionario.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frmConsultarFuncionario.getContentPane().setLayout(new MigLayout("", "[][][][][grow]", "[][][][][]"));
		
		JLabel lblCdigo = new JLabel("C\u00F3digo:");
		frmConsultarFuncionario.getContentPane().add(lblCdigo, "cell 0 0");
		
		txCod = new JTextField();
		frmConsultarFuncionario.getContentPane().add(txCod, "cell 1 0,aligny top");
		txCod.setColumns(10);
		
		JLabel lblTelefone = new JLabel("Telefone:");
		frmConsultarFuncionario.getContentPane().add(lblTelefone, "cell 2 0");
		
		JLabel lblNone = new JLabel("Nome:");
		frmConsultarFuncionario.getContentPane().add(lblNone, "cell 0 1");
		
		txNome = new JTextField();
		txNome.setEditable(false);
		txNome.setEnabled(false);
		txNome.setColumns(10);
		frmConsultarFuncionario.getContentPane().add(txNome, "cell 1 1");
		
		JLabel lblCpf = new JLabel("CPF:");
		frmConsultarFuncionario.getContentPane().add(lblCpf, "cell 2 1");
		
		JLabel lblNumeroCnh = new JLabel("Numero CNH:");
		frmConsultarFuncionario.getContentPane().add(lblNumeroCnh, "cell 0 2");
		
		txCNH = new JTextField();
		txCNH.setEditable(false);
		txCNH.setEnabled(false);
		txCNH.setColumns(10);
		frmConsultarFuncionario.getContentPane().add(txCNH, "cell 1 2");
		
		JLabel lblCategoria = new JLabel("Categoria CNH:");
		frmConsultarFuncionario.getContentPane().add(lblCategoria, "cell 2 2");
		
		txTelefone = new JTextField();
		txTelefone.setEditable(false);
		txTelefone.setEnabled(false);
		txTelefone.setColumns(10);
		frmConsultarFuncionario.getContentPane().add(txTelefone, "cell 4 0,aligny top");
		
		txCategoria = new JTextField();
		txCategoria.setEditable(false);
		txCategoria.setEnabled(false);
		txCategoria.setColumns(10);
		frmConsultarFuncionario.getContentPane().add(txCategoria, "cell 4 2");
		
		txCPF = new JTextField();
		txCPF.setEditable(false);
		txCPF.setEnabled(false);
		txCPF.setColumns(10);
		frmConsultarFuncionario.getContentPane().add(txCPF, "cell 4 1");
		
		JButton btnConsultar = new JButton("Consultar");
		btnConsultar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				
				String id = txCod.getText();
				
				if (id.length() > 0) {
					
					ControllerFunc func = new ControllerFunc();
					Funcionario f = func.consultarFunc(id);
					
					if (f != null) {
						
						txNome.setText(f.getNome());
						txCPF.setText(f.getCpf());
						txTelefone.setText(f.getTelefone());

						Motorista m = func.consultarMot(id);
						
						if (m != null) {
							txCNH.setText(m.getNumCNH());
							txCategoria.setText(m.getCategoria());
						}
						
					}
					
				}
				
			}
		});
		btnConsultar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
		frmConsultarFuncionario.getContentPane().add(btnConsultar, "cell 1 4");
		
		JButton btnExcluir = new JButton("Excluir");
		btnExcluir.setEnabled(false);
		btnExcluir.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				
				String id = txCod.getText();
				
				if (id.length() > 0) {
					
					int opcao = JOptionPane.showConfirmDialog(null, "Deseja excluir o Funcionario?");
					if (opcao == 0) { //sim
						
						ControllerFunc cf = new ControllerFunc();
					
						if (txCNH.getText().length() > 0) {
							cf.excluirMot(id);
						}
							
						JOptionPane.showMessageDialog(null, cf.excluirFunc(id));
						
						txCod.setText("");
						txNome.setText("");
						txCPF.setText("");
						txTelefone.setText("");
						txCategoria.setText("");
						txCNH.setText("");
						
					}
					
				}
				
			}
		});
		btnExcluir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
		
		JButton btnEditar = new JButton("Editar");
		btnEditar.addMouseListener(new MouseAdapter() {
	
			public void mouseClicked(MouseEvent arg0) {
				
				txCNH.setEnabled(true);
				txCNH.setEditable(true);
				txNome.setEnabled(true);
				txNome.setEditable(true);
				txTelefone.setEnabled(true);
				txTelefone.setEditable(true);
				txCPF.setEnabled(true);
				txCPF.setEditable(true);
				txCategoria.setEnabled(true);
				txCategoria.setEditable(true);
				btnSalvar.setEnabled(true);
				btnSalvar.setVisible(true);

			}
		});
		btnEditar.setEnabled(false);
		frmConsultarFuncionario.getContentPane().add(btnEditar, "cell 2 4");
		
		JButton btnSalvar = new JButton("Salvar");
		btnSalvar.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent arg0) {
				
				String id = txCod.getText();
				
				if (id.length() > 0) {
				
					if (verificaCNH(txCategoria.getText())) {
					
						ControllerFunc cf = new ControllerFunc();
						
						Funcionario f = new Funcionario();
						f.setCpf(txCPF.getText());
						f.setId(Integer.parseInt(txCod.getText()));
						f.setNome(txNome.getText());
						f.setTelefone(txTelefone.getText());
							
						Motorista m = new Motorista();
						m.setId_funcionario(Integer.parseInt(txCod.getText()));
						m.setCategoria(txCategoria.getText());
						m.setNumCNH(txCNH.getText());
							
						JOptionPane.showMessageDialog(null, cf.alterarFunc(id, f, m));
						
					} else {
						JOptionPane.showMessageDialog(null, "A categoria da CNH deve ser C, D ou E");
					}
					
				}
			}
		});
		btnSalvar.setEnabled(false);
		frmConsultarFuncionario.getContentPane().add(btnSalvar, "cell 3 4");
		frmConsultarFuncionario.getContentPane().add(btnExcluir, "flowx,cell 4 4");
	}
	
	public boolean verificaCNH(String tx) {
		
		boolean valido = false;
		
		if (tx.length() > 0) {
			if (tx.equals("C") || tx.equals("D") || tx.equals("E")) {
				valido = true;				
			}
		}
		
		return valido;
	}

}
